<?xml version="1.0" encoding="UTF-8"?>
<html filename="docs/SAXHelpers/TXMLFilterImpl.html">
<body>
<a id="#top"/>
<h1>
	                Class Summary : TXMLFilterImpl </h1> Buffered Base class for deriving an XML filter.

 <p>This class is designed to sit between an <a href="../SAX/IXMLReader.html">IXMLReader</a>
 and the client application's event handlers.  By default, it
 does nothing but pass requests up to the reader and events
 on to the handlers unmodified, but subclasses can override
 specific methods to modify the event stream or the configuration
 requests as they pass through.</p>

<h2>
	              Methods
	            </h2>
<div style="padding-left:10px">
<a href="#setupParse">
	                  procedure
	                 setupParse()</a>
<br/>
<a href="#setParent">
	                  procedure
	                 setParent(IXMLReader)</a>
<br/>
<a href="#getParent">
	                  function
	                 getParent() : IXMLReader</a>
<br/>
<a href="#getFeature">
	                  function
	                 getFeature(SAXString) : Boolean</a>
<br/>
<a href="#setFeature">
	                  procedure
	                 setFeature(SAXString, Boolean)</a>
<br/>
<a href="#getProperty">
	                  function
	                 getProperty(SAXString) : IProperty</a>
<br/>
<a href="#setEntityResolver">
	                  procedure
	                 setEntityResolver(IEntityResolver)</a>
<br/>
<a href="#getEntityResolver">
	                  function
	                 getEntityResolver() : IEntityResolver</a>
<br/>
<a href="#setDTDHandler">
	                  procedure
	                 setDTDHandler(IDTDHandler)</a>
<br/>
<a href="#getDTDHandler">
	                  function
	                 getDTDHandler() : IDTDHandler</a>
<br/>
<a href="#setContentHandler">
	                  procedure
	                 setContentHandler(IContentHandler)</a>
<br/>
<a href="#getContentHandler">
	                  function
	                 getContentHandler() : IContentHandler</a>
<br/>
<a href="#setErrorHandler">
	                  procedure
	                 setErrorHandler(IErrorHandler)</a>
<br/>
<a href="#getErrorHandler">
	                  function
	                 getErrorHandler() : IErrorHandler</a>
<br/>
<a href="#parse">
	                  procedure
	                 parse(IInputSource)</a>
<br/>
<a href="#parse">
	                  procedure
	                 parse(SAXString)</a>
<br/>
<a href="#resolveEntity">
	                  function
	                 resolveEntity(SAXString, SAXString) : IInputSource</a>
<br/>
<a href="#notationDecl">
	                  procedure
	                 notationDecl(SAXString, SAXString, SAXString)</a>
<br/>
<a href="#unparsedEntityDecl">
	                  procedure
	                 unparsedEntityDecl(SAXString, SAXString, SAXString, SAXString)</a>
<br/>
<a href="#setDocumentLocator">
	                  procedure
	                 setDocumentLocator(ILocator)</a>
<br/>
<a href="#startDocument">
	                  procedure
	                 startDocument()</a>
<br/>
<a href="#endDocument">
	                  procedure
	                 endDocument()</a>
<br/>
<a href="#startPrefixMapping">
	                  procedure
	                 startPrefixMapping(SAXString, SAXString)</a>
<br/>
<a href="#endPrefixMapping">
	                  procedure
	                 endPrefixMapping(SAXString)</a>
<br/>
<a href="#startElement">
	                  procedure
	                 startElement(SAXString, SAXString, SAXString, IAttributes)</a>
<br/>
<a href="#endElement">
	                  procedure
	                 endElement(SAXString, SAXString, SAXString)</a>
<br/>
<a href="#characters">
	                  procedure
	                 characters(SAXString)</a>
<br/>
<a href="#ignorableWhitespace">
	                  procedure
	                 ignorableWhitespace(SAXString)</a>
<br/>
<a href="#processingInstruction">
	                  procedure
	                 processingInstruction(SAXString, SAXString)</a>
<br/>
<a href="#skippedEntity">
	                  procedure
	                 skippedEntity(SAXString)</a>
<br/>
<a href="#warning">
	                  procedure
	                 warning(ISAXParseError)</a>
<br/>
<a href="#error">
	                  procedure
	                 error(ISAXParseError)</a>
<br/>
<a href="#fatalError">
	                  procedure
	                 fatalError(ISAXParseError)</a>
<br/>
</div>
<br/>
<hr width="100%"/>
<a name="#setupParse">
<p>
<b>procedure</b> setupParse(); </p>
</a> Set up before a parse.

 <p>Before every parse, check whether the parent is
 non-nil, and re-register the filter for all of the
 events.</p>
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#setParent">
<p>
<b>procedure</b> setParent(<b>const</b> parent : IXMLReader); </p>
</a> Set the parent reader.

 <p>This is the <a href="../SAX/IXMLReader.html">IXMLReader</a> from which
 this filter will obtain its events and to which it will pass its
 configuration requests.  The parent may itself be another filter.</p>

 <p>If there is no parent reader set, any attempt to parse
 or to set or get a feature or property will fail.</p>
<br/><b>Parameter : </b> parent The parent reader.
<br/><b>See : </b> <a href="../SAXHelpers/TXMLFilterImpl.html#getParent">TXMLFilterImpl.getParent</a>
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getParent">
<p>
<b>function</b> getParent() : IXMLReader; </p>
</a> Get the parent reader.

 <p>This method allows the application to query the parent
 reader (which may be another filter).  It is generally a
 bad idea to perform any operations on the parent reader
 directly: they should all pass through this filter.</p>

<br/><b>Result : </b> The parent filter, or nil if none has been set.
<br/><b>See : </b> <a href="../SAXHelpers/TXMLFilterImpl.html#setParent">TXMLFilterImpl.setParent</a>
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getFeature">
<p>
<b>function</b> getFeature(<b>const</b> name : SAXString) : Boolean; </p>
</a> Look up the value of a feature.

 <p>This will always fail if the parent is nil.</p>

<br/><b>Parameter : </b> name The feature name.
<br/><b>Result : </b> The current value of the feature.
<br/><b>Exception : </b> ESAXNotRecognizedException If the feature
            value can't be assigned or retrieved from the parent.
<br/><b>Exception : </b> ESAXNotSupportedException When the
            parent recognizes the feature name but
            cannot determine its value at this time.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#setFeature">
<p>
<b>procedure</b> setFeature(<b>const</b> name : SAXString;  value : Boolean); </p>
</a> Set the value of a feature.

 <p>This will always fail if the parent is nil.</p>

<br/><b>Parameter : </b> name The feature name.
<br/><b>Parameter : </b> value The requested feature value.
<br/><b>Exception : </b> ESAXNotRecognizedException If the feature
            value can't be assigned or retrieved from the parent.
<br/><b>Exception : </b> ESAXNotSupportedException When the
            parent recognizes the feature name but
            cannot set the requested value.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getProperty">
<p>
<b>function</b> getProperty(<b>const</b> name : SAXString) : IProperty; </p>
</a> Look up the interface value of a property.

<br/><b>Parameter : </b> name The property name.
<br/><b>Parameter : </b> value The current value of the property as an interface.
<br/><b>Exception : </b> ESAXNotRecognizedException If the property interface
            value can't be retrieved from the parent.
<br/><b>Exception : </b> ESAXNotSupportedException When the
            parent recognizes the property name but
            cannot determine its interface at this time.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#setEntityResolver">
<p>
<b>procedure</b> setEntityResolver(<b>const</b> resolver : IEntityResolver); </p>
</a> Set the entity resolver.

<br/><b>Parameter : </b> resolver The new entity resolver.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getEntityResolver">
<p>
<b>function</b> getEntityResolver() : IEntityResolver; </p>
</a> Get the current entity resolver.

<br/><b>Result : </b> The current entity resolver, or nil if none was set.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#setDTDHandler">
<p>
<b>procedure</b> setDTDHandler(<b>const</b> handler : IDTDHandler); </p>
</a> Set the DTD event handler.

<br/><b>Parameter : </b> resolver The new DTD handler.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getDTDHandler">
<p>
<b>function</b> getDTDHandler() : IDTDHandler; </p>
</a> Get the current DTD event handler.

<br/><b>Result : </b> The current DTD handler, or nil if none was set.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#setContentHandler">
<p>
<b>procedure</b> setContentHandler(<b>const</b> handler : IContentHandler); </p>
</a> Set the content event handler.

<br/><b>Parameter : </b> resolver The new content handler.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getContentHandler">
<p>
<b>function</b> getContentHandler() : IContentHandler; </p>
</a> Get the content event handler.

<br/><b>Result : </b> The current content handler, or nil if none was set.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#setErrorHandler">
<p>
<b>procedure</b> setErrorHandler(<b>const</b> handler : IErrorHandler); </p>
</a> Set the error event handler.

<br/><b>Parameter : </b> handle The new error handler.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getErrorHandler">
<p>
<b>function</b> getErrorHandler() : IErrorHandler; </p>
</a> Get the current error event handler.

<br/><b>Result : </b> The current error handler, or nil if none was set.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#parse">
<p>
<b>procedure</b> parse(<b>const</b> input : IInputSource); </p>
</a> Parse a document.

<br/><b>Parameter : </b> input The input source for the document entity.
<br/><b>Exception : </b> ESAXException Any SAX exception.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#parse">
<p>
<b>procedure</b> parse(<b>const</b> systemId : SAXString); </p>
</a> Parse a document.

<br/><b>Parameter : </b> systemId The system identifier as a fully-qualified URI.
<br/><b>Exception : </b> ESAXException Any SAX exception.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#resolveEntity">
<p>
<b>function</b> resolveEntity(<b>const</b> publicId : SAXString; <b>const</b> systemId : SAXString) : IInputSource; </p>
</a> Filter an external entity resolution.

<br/><b>Parameter : </b> publicId The entity's public identifier, or null.
<br/><b>Parameter : </b> systemId The entity's system identifier.
<br/><b>Result : </b> A new InputSource or null for the default.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#notationDecl">
<p>
<b>procedure</b> notationDecl(<b>const</b> name : SAXString; <b>const</b> publicId : SAXString; <b>const</b> systemId : SAXString); </p>
</a> Filter a notation declaration event.

<br/><b>Parameter : </b> name The notation name.
<br/><b>Parameter : </b> publicId The notation's public identifier, or null.
<br/><b>Parameter : </b> systemId The notation's system identifier, or null.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#unparsedEntityDecl">
<p>
<b>procedure</b> unparsedEntityDecl(<b>const</b> name : SAXString; <b>const</b> publicId : SAXString; <b>const</b> systemId : SAXString; <b>const</b> notationName : SAXString); </p>
</a> Filter an unparsed entity declaration event.

<br/><b>Parameter : </b> name The entity name.
<br/><b>Parameter : </b> publicId The entity's public identifier, or null.
<br/><b>Parameter : </b> systemId The entity's system identifier, or null.
<br/><b>Parameter : </b> notationName The name of the associated notation.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#setDocumentLocator">
<p>
<b>procedure</b> setDocumentLocator(<b>const</b> locator : ILocator); </p>
</a> Filter a new document locator event.

<br/><b>Parameter : </b> locator The document locator.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#startDocument">
<p>
<b>procedure</b> startDocument(); </p>
</a> Filter a start document event.

<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#endDocument">
<p>
<b>procedure</b> endDocument(); </p>
</a> Filter an end document event.

<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#startPrefixMapping">
<p>
<b>procedure</b> startPrefixMapping(<b>const</b> prefix : SAXString; <b>const</b> uri : SAXString); </p>
</a> Filter a start Namespace prefix mapping event.

<br/><b>Parameter : </b> prefix The Namespace prefix.
<br/><b>Parameter : </b> uri The Namespace URI.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#endPrefixMapping">
<p>
<b>procedure</b> endPrefixMapping(<b>const</b> prefix : SAXString); </p>
</a> Filter an end Namespace prefix mapping event.

<br/><b>Parameter : </b> prefix The Namespace prefix.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#startElement">
<p>
<b>procedure</b> startElement(<b>const</b> uri : SAXString; <b>const</b> localName : SAXString; <b>const</b> qName : SAXString; <b>const</b> atts : IAttributes); </p>
</a> Filter a start element event.

<br/><b>Parameter : </b> uri The element's Namespace URI, or the empty string.
<br/><b>Parameter : </b> localName The element's local name, or the empty string.
<br/><b>Parameter : </b> qName The element's qualified (prefixed) name, or the empty
        string.
<br/><b>Parameter : </b> atts The element's attributes.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#endElement">
<p>
<b>procedure</b> endElement(<b>const</b> uri : SAXString; <b>const</b> localName : SAXString; <b>const</b> qName : SAXString); </p>
</a> Filter an end element event.

<br/><b>Parameter : </b> uri The element's Namespace URI, or the empty string.
<br/><b>Parameter : </b> localName The element's local name, or the empty string.
<br/><b>Parameter : </b> qName The element's qualified (prefixed) name, or the empty
        string.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#characters">
<p>
<b>procedure</b> characters(<b>const</b> ch : SAXString); </p>
</a> Filter a character data event.

<br/><b>Parameter : </b> ch The characters in the XML Document.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#ignorableWhitespace">
<p>
<b>procedure</b> ignorableWhitespace(<b>const</b> ch : SAXString); </p>
</a> Filter an ignorable whitespace event.

<br/><b>Parameter : </b> ch The characters in the XML Document.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#processingInstruction">
<p>
<b>procedure</b> processingInstruction(<b>const</b> target : SAXString; <b>const</b> data : SAXString); </p>
</a> Filter a processing instruction event.

<br/><b>Parameter : </b> target The processing instruction target.
<br/><b>Parameter : </b> data The text following the target.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#skippedEntity">
<p>
<b>procedure</b> skippedEntity(<b>const</b> name : SAXString); </p>
</a> Filter a skipped entity event.

<br/><b>Parameter : </b> name The name of the skipped entity.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#warning">
<p>
<b>procedure</b> warning(<b>const</b> e : ISAXParseError); </p>
</a> Filter a warning event.

<br/><b>Parameter : </b> e The warning as an exception.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#error">
<p>
<b>procedure</b> error(<b>const</b> e : ISAXParseError); </p>
</a> Filter an error event.

<br/><b>Parameter : </b> e The error as an exception.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#fatalError">
<p>
<b>procedure</b> fatalError(<b>const</b> e : ISAXParseError); </p>
</a> Filter a fatal error event.

<br/><b>Parameter : </b> e The error as an exception.
<br/><b>Exception : </b> ESAXException The client may throw
            an exception during processing.
<br/>
<p>
<a href="#top">Top</a>
</p>
</body>
</html>